"""HTML 语言标签属性中英字典. 英文元素来自 MDN"""
# 考虑将标签字典的值写成一个三元组: 第一个元素是对应的英文标签, 
# 第二个元素是该标签特有的属性对照字典 (可定义一个个字典变量来表示, 在如没有则为 空)
# 第三个元素是特有属性的特殊值对照字典 (同样可定义一个个字典变量来表示)
# 转换标签属性时, 先在特有属性字典中找, 没找到才去全局属性中找, 以节省时间

标签字典 = {
    # 主根元素
    '网页' : 'html',
    # 文档元数据
    '基址' : ('base', 
                {'超链接' : 'href', '目标' : 'target'}, 
                {'_自身' : '_self', '_空白' : '_blank', '_父级' : '_parent', '_顶级' : '_top'}),
    '页头' : 'head',
    '链接' : 'link',
    '元数据' : 'meta',
    '样式' : 'style',
    '抬头' : 'title',
    # 分区根元素
    '主体' : 'body',
    # 内容分区
    '地址' : 'address',
    '文章' : 'article',
    '旁白' : 'aside',
    '页脚' : 'footer',
    '页眉' : 'header',
    '标题1' : 'h1',
    '标题2' : 'h2',
    '标题3' : 'h3',
    '标题4' : 'h4',
    '标题5' : 'h5',
    '标题6' : 'h6',
    '标题组' : 'hgroup',
    '主要' : 'main',
    '导航' : 'nav',
    '部分' : 'section',
    # 文本内容
    '块引用' : 'blockquote',
    '描述列表' : 'dl',
    '术语' : 'dt',
    '描述' : 'dd',
    '分区' : 'div',
    '图形题注' : 'figcaption',
    '图形' : 'figure',
    '水平线' : 'hr',
    '无序' : 'ol',
    '有序' : 'ul',
    '条目' : 'li',
    '段落' : 'p',
    '预格式化' : 'pre',
    # 内联文本语义
    '锚点' : 'a',
    '缩写' : 'abbr',
    '注意' : 'b',
    '双向隔离' : 'bdi',
    '双向覆盖' : 'bdo',
    '换行' : 'br',
    '引用' : 'cite',
    '代码' : 'code',
    '数据' : 'data',
    '定义' : 'dfn',
    '强调' : 'em',
    '习语' : 'i',
    '键盘' : 'kbd',
    '突出' : 'mark',
    '引语' : 'q',
    '注音文本' : 'rb',
    '注音字母' : 'rt',
    '注音括号' : 'rp',
    '注音语义' : 'rtc',
    '注音' : 'ruby',
    '删除线' : 's',
    '示例' : 'samp',
    '小字' : 'small',
    '范围' : 'span',
    '重要' : 'strong',
    '下标' : 'sub',
    '上标' : 'sup',
    '时间' : 'time',
    '下划线' : 'u',
    '变量' : 'var',
    '断字' : 'wbr',
    # 图片和多媒体
    '区域' : 'area',
    '音频' : 'audio',
    '图像' : 'img',
    '映射' : 'map',
    '轨道' : 'track',
    '视频' : 'video',
    # 内嵌内容
    '嵌入' : 'embed',
    '内框' : 'iframe',
    '对象' : 'object',
    '参数' : 'param',
    '图片' : 'picture',
    '入口' : 'portal',
    '来源' : 'source',
    # SVG 和 MathML
    '矢量图' : 'SVG',
    '数学' : 'math',
    # 脚本
    '画布' : 'canvas',
    '代脚本' : 'noscript',
    '脚本' : 'script',
    # 编辑标识
    '删除' : 'del',
    '插入' : 'ins',
    # 表格内容
    '题注' : 'caption',
    '列' : 'col',
    '列组' : 'colgroup',
    '表格' : 'table',
    '表体' : 'tbody',
    '单元格' : 'td',
    '表尾' : 'tfoot',
    '表头' : 'thead',
    '表行' : 'tr',    # 行?
    # 表单
    '按钮' : 'button',
    '选项表' : 'datalist',
    '控件集' : 'fieldset',
    '表单' : 'form',
    '输入' : 'input',
    '标签' : 'label',
    '仪表' : 'meter',
    '选项组' : 'optgroup',
    '选项' : 'option',
    '输出' : 'ouput',
    '进度条' : 'progress',
    '选择' : 'select',
    '文本区' : 'textarea',
    # 交互元素
    '详情' : 'details',
    '对话框' : 'dialog',
    '菜单' : 'menu',
    '摘要' : 'summary',
    # Web 组件
    '槽' : 'slot',
    '模板' : 'template'
}

# 下面只是全局属性的几个例子
# 全局属性的特殊值仿照标签属性处理?
全局属性 = {
    # 事件类
    '若中止' : 'onabort',
    '若取消' : 'oncancel',
    # 其他
    '类' : 'class',
    '隐藏' : 'hidden',
    '样式' : 'style',
}